#!/usr/bin/env python3
# -*- coding: utf-8 -*-
###----------1、文件说明----------###
'''
* 说明：
* 时间：
* 文件：
* 作者：whg
* 版本：
 - 0.1 -> :
    SHA256:
* 备注：
'''
###----------2、库导入----------###
import os, sys, io
import codecs
import subprocess
from loguru import logger as log
import sys

###----------3、参数配置----------###
# 修改默认输出
log.remove()
log.add(
    sys.stderr,
    format="<level>{message}</level>",
    colorize=True,
    level="DEBUG"
)
###----------4、功能程序----------###
os.environ['PYTHONIOENCODING'] = 'utf-8'

# sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
# sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
###----------5、主体程序----------###
def run(path):
    print('开始上传文件...\n')

    errorfile = []
    for name in os.listdir(path):
        print("上传文件:", name)
        cmd = "twine upload --skip-existing --repository-url http://192.168.10.83:51000/ -u osmile -p 1 " + name
        ret = subprocess.run(cmd, shell=True, capture_output=True, encoding="utf-8")
        if "ERROR" in ret.stdout:
            log.error(ret.stdout)
            errorfile.append([name, ret.stdout])
        else:
            log.debug(ret.stdout)
        log.error(ret.stderr)
        if len(ret.stderr) > 0:
            log.error("错误输出:", ret.stderr)
            errorfile.append(name)

        # ret = subprocess.getoutput(cmd)
        # print(ret)
    if len(errorfile) > 0:
        log.error("错误文件-->")

        os.makedirs("error", exist_ok=True)

        for info in errorfile:
            log.warning(info[0])
            log.error(info[1])
        for info in errorfile:
            log.warning(info[0])
            src = os.path.join(path, info[0])
            dst = os.path.join(path, "error", info[0])
            os.rename(src, dst)
        log.warning("错误文件移动到目录 error")

if __name__ == '__main__':
    path = r"."
    run(path)